맨위로가기

컴퓨터 구조

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

컴퓨터 구조는 19세기 찰스 배비지의 해석기관에서 시작되어, 컴퓨터의 하드웨어와 소프트웨어의 인터페이스를 정의하고, 컴퓨터 시스템의 성능, 전력 효율, 비용, 신뢰성 등을 결정하는 핵심적인 요소이다. 명령어 집합 구조(ISA), 마이크로아키텍처, 시스템 설계의 세 가지 하부 분류로 나뉘며, 폰 노이만 아키텍처, 하버드 아키텍처, 어큐뮬레이터 방식, 범용 레지스터 방식 등 CPU 아키텍처의 다양한 형태를 포함한다. 현대 컴퓨터는 전력 효율성을 중요하게 고려하며, 성능 향상과 함께 비용, 신뢰성, 확장성 등 다양한 설계 목표를 절충하여 최적의 시스템을 구축한다.

더 읽어볼만한 페이지

  • 컴퓨터 구조 - PA-RISC
    PA-RISC는 휴렛 팩커드에서 개발한 RISC 기반 명령어 집합 아키텍처로, HP 서버 및 워크스테이션에 사용되었으며 대용량 L1 캐시와 SIMD 명령어 확장 등의 특징을 가졌으나 아이테니엄 아키텍처로의 전환으로 단종되었다.
  • 컴퓨터 구조 - 메모리 관리
    메모리 관리는 운영체제의 핵심 기능으로, 여러 프로세스의 원활한 실행을 위해 메모리 공간을 할당하고 관리하며, 릴로케이션, 보호, 공유, 가상 메모리 관리, 자동/수동 메모리 관리 등의 기능을 수행한다.
  • 중앙 처리 장치 - 마이크로컨트롤러
    마이크로컨트롤러는 프로세서, 메모리, 입출력 기능을 단일 칩에 통합하여 임베디드 시스템의 핵심이 되는 부품으로, 프로그램 내장 방식을 통해 소프트웨어만으로 제어 기능 변경이 가능하며, 현재는 32비트 ARM, MIPS 아키텍처 기반 제품이 주를 이루고, 저전력 소모, 소형화, 다양한 기능 통합을 특징으로 다양한 분야에서 활용된다.
  • 중앙 처리 장치 - NX 비트
    NX 비트는 하드웨어 기반 보안 기능으로, 메모리 페이지의 실행 권한을 제어하여 특정 영역에서 코드 실행을 막아 버퍼 오버플로 공격과 같은 보안 위협을 줄이는 데 사용되며, AMD에서 처음 도입 후 다양한 프로세서와 운영체제에서 DEP 등의 이름으로 구현되었다.
컴퓨터 구조
개요
컴퓨터 아키텍처 다이어그램
컴퓨터 아키텍처 다이어그램
종류마이크로아키텍처
명령어 집합 구조 (ISA)
시스템 아키텍처
관련 주제컴퓨터 구조
컴퓨터 과학
컴퓨터 공학
소프트웨어 공학
운영 체제
컴파일러
임베디드 시스템
병렬 처리
정의 및 범위
정의컴퓨터 시스템의 구성 요소 및 상호 작용 규칙
범위명령어 집합 구조 (ISA)
마이크로아키텍처
시스템 설계
소프트웨어 인터페이스
하드웨어 인터페이스
명령어 집합 구조 (ISA)
주요 내용명령어 형식
데이터 유형
주소 지정 방식
레지스터 구조
인터럽트 처리
마이크로아키텍처
주요 내용데이터 경로
제어 장치
캐시 메모리 시스템
파이프라이닝
분기 예측
시스템 설계
주요 내용메모리 시스템
입출력 시스템
버스 구조
다중 처리
네트워크 인터페이스
소프트웨어 및 하드웨어 인터페이스
주요 내용API (응용 프로그래밍 인터페이스)
ABI (응용 바이너리 인터페이스)
장치 드라이버
펌웨어
설계 목표
목표성능
에너지 효율성
비용
신뢰성
보안
확장성
설계 방법론
방법론top-down 설계
bottom-up 설계
프로토타이핑
시뮬레이션
검증 및 테스트
응용 분야
분야데스크톱 컴퓨터
서버 컴퓨터
모바일 장치
임베디드 시스템
슈퍼컴퓨터
클라우드 컴퓨팅
관련 학문 및 기술
학문 및 기술컴퓨터 과학
전기 공학
전자 공학
운영 체제
컴파일러
디지털 논리 회로
VLSI 설계
기타
관련 인물존 폰 노이만
모리스 윌크스
진 아ム달
데이비드 패터슨
존 헤네시
관련 단체IEEE
ACM
JEDEC

2. 역사

컴퓨터 구조의 개념은 19세기 찰스 배비지해석기관에서 시작되었으며, 비록 실제로 제작되지는 않았지만 범용 컴퓨터의 논리적 설계를 예측한 중요한 모델로 평가받는다. 1936년 콘라트 추제불 논리 체계와 프로그래밍이 가능한 세계 최초의 기계식 컴퓨터 Z1을 만들면서, 명령어와 데이터가 동일한 저장장치에 저장되는 프로그램 내장식 컴퓨터 개념을 최초로 기술하였다.[41][42] 1945년에는 컴퓨터 구조 발전에 중요한 두 가지 사건이 있었다.


  • 존 폰 노이만은 논문 "EDVAC에 대한 보고서의 첫 번째 초안(First Draft of a Report on the EDVAC)"에서 논리적 요소에 대한 구성을 기술하였다.[43]
  • 앨런 튜링존 폰 노이만의 논문을 인용하여 더 자세하게 제안된 ACE(Automatic Computing Engine)를 발표하였다.[44]


1959년 IBM 연구소의 라일 존슨(Lyle R. Johnson)과 프레더릭 브룩스(Frederick P. Brooks, Jr.)는 컴퓨터 과학에서 "컴퓨터 아키텍처"라는 용어를 처음 사용하였다. 존슨은 로스앨러모스 국립 연구소용 슈퍼컴퓨터인 스트레치(Stretch)를 설명하면서 "기계 구성"보다 "시스템 아키텍처"라는 용어가 더 적합하다고 언급하였다.[45] 프레더릭 브룩스는 1962년 저서에서 컴퓨터 아키텍처를 "구조 사용자의 요구를 결정한 후 경제적, 기술적 제약 내에서 가능한 한 효과적으로 요구를 충족하도록 설계하는 기술"이라고 정의하였다.[46]

프레더릭 브룩스는 IBM_시스템/360 개발을 도왔으며, 여기서 "아키텍처"는 "사용자가 알아야 할 것"을 정의하는 용어로 정착되었다. 초기 컴퓨터 아키텍처는 종이에 설계되었으나, 이후 다음과 같은 방식으로 발전하였다.

3. 하부 분류

컴퓨터 구조는 크게 세 가지 하위 분류로 나뉜다.[47]



이 외에도 인텔(Intel)과 같은 대기업에서 사용하는 다른 기술들이 있다.[14]

  • '''매크로아키텍처''': 마이크로아키텍처보다 추상적인 아키텍처 계층이다.
  • '''어셈블리 명령어 집합 아키텍처''': 스마트 어셈블러는 여러 머신에서 공통적으로 사용되는 추상적인 어셈블리어를 서로 다른 구현을 위해 약간 다른 기계어로 변환할 수 있다.
  • '''프로그래머가 볼 수 있는 매크로아키텍처''': 컴파일러와 같은 상위 레벨 언어 도구는 ISA와 마이크로아키텍처 간의 차이점을 추상화하여 프로그래머에게 일관된 인터페이스를 제공한다. (C, C++, Java 등)
  • '''마이크로코드''': 칩에서 실행될 명령어를 변환하는 소프트웨어로, 하드웨어의 명령어 집합 인터페이스를 제공한다.
  • '''핀 아키텍처''': 마이크로프로세서가 하드웨어 플랫폼에 제공해야 하는 하드웨어 기능이다.


아키텍처는 원래 건축 용어로 "설계"나 "양식"을 의미했지만, 컴퓨터 분야에서 사용되면서 의미가 확장되었다.[23][24][25] 1964년 System/360에서 처음 사용되었으며, 입출력 인터페이스를 포함한 컴퓨터 시스템 하드웨어 전체를 사용자 관점에서 본 구성 요소와 인터페이스의 정의를 의미한다.

3. 1. 명령어 집합 구조 (ISA)

명령어 집합 구조(Instruction Set Architecture, ISA)는 프로세서가 읽고 실행하는 기계어를 정의하며, 워드 크기, 메모리 주소 방식, 프로세서 레지스터, 데이터 타입을 포함한다.[14] 컴파일러와 같은 소프트웨어 도구는 C, C++, 자바와 같은 고급 프로그래밍 언어를 프로세서가 이해할 수 있는 명령어로 변환한다.

ISA는 명령어 외에도 프로그램에서 사용할 수 있는 자료형, 레지스터, 어드레싱 모드, 메모리 등을 정의한다. 명령어는 레지스터 인덱스(또는 이름)와 메모리 어드레싱 모드를 사용하여 이러한 사용 가능한 항목을 찾는다.

컴퓨터의 ISA는 일반적으로 명령어의 인코딩 방법을 설명하는 작은 명령어 매뉴얼에 설명되어 있으며, 명령어에 대한 짧은 니모닉 이름을 정의한다. 이 이름은 어셈블러라는 소프트웨어 개발 도구에서 인식할 수 있다. 디스어셈블러는 디버거 및 바이너리 컴퓨터 프로그램의 오작동을 격리하고 수정하는 소프트웨어 프로그램에 널리 사용된다.

좋은 ISA는 프로그래머의 편의성, 코드 크기, 명령어를 해석하는 컴퓨터의 비용, 그리고 컴퓨터의 속도 사이에서 절충한다.[23][24][25] 메모리 구성은 명령이 메모리와 어떻게 상호 작용하는지, 그리고 메모리가 자체적으로 어떻게 상호 작용하는지를 정의한다.

에뮬레이터는 제안된 명령어 집합으로 작성된 프로그램을 실행할 수 있다. 최신 에뮬레이터는 특정 ISA가 목표를 충족하는지 판단하기 위해 크기, 비용 및 속도를 측정할 수 있다.

더 복잡한 명령어 집합은 프로그래머가 더 공간 효율적인 프로그램을 작성할 수 있게 해주지만,[16] 더 길고 복잡한 명령어는 프로세서가 디코딩하는 데 더 오래 걸리고 효과적으로 구현하는 데 더 많은 비용이 들 수 있다. 대규모 명령어 집합으로 인한 복잡성 증가는 명령어가 예상치 못한 방식으로 상호 작용할 때 신뢰성 부족의 여지를 더 많이 만든다.

헤네시와 패터슨의 2003년 저서에서는 컴퓨터 구조를 최소한 세 가지로 분류했다.[26] 그중 명령어 집합 아키텍처(ISA)는 기계어 또는 어셈블리 언어 프로그래머(OS 프로그래머 포함)가 본 CPU(프로세서)의 추상화된 모델이다.[27] 소프트웨어 측면에서 본 CPU의 인터페이스 정의로, 소프트웨어가 CPU에 무엇을 할 수 있고 어떻게 수행되는지를 나타낸다.[27] 명령어 집합, 어드레싱 모드, 레지스터, 주소 및 데이터 형식이 포함된다.

원래의 System/360의 "엄격하게 정의된" 아키텍처는 ISA가 포함되어 있다.

3. 2. 마이크로아키텍처

마이크로아키텍처는 "컴퓨터 조직"이라고도 불리며, 특정 프로세서명령어 집합 구조(ISA)를 실제로 어떻게 구현하는지를 나타낸다.[15] 예를 들어, 컴퓨터의 CPU 캐시 크기는 일반적으로 ISA와 관련이 없지만, 마이크로아키텍처에 해당한다.

마이크로아키텍처는 ISA보다 하위 계층의, 보다 구체적인 시스템에 대한 설명으로, ISA를 구현하기 위해 시스템 구성 요소를 어떻게 연결하고 상호 작용하는지를 나타낸다.[28] CPU의 회로적 구조[29]라고도 할 수 있다.

마이크로아키텍처에는 다음과 같은 요소들이 포함된다.[30]

  • 파이프라인의 길이와 레이아웃
  • (CPU 내의) 캐시의 수와 용량
  • CPI(1명령어당 클럭 사이클 수)


마이크로아키텍처는 CPU의 처리 속도와 밀접한 관계가 있지만, 일반적으로 ISA와 관련이 없으며 그 하위에 존재하여 프로그래머에게는 "보이지 않는 존재"이다.

마이크로아키텍처의 종류는 다음과 같다.

종류설명
연산 아키텍처부동 소수점, 연산 장치, SIMD/MIMD, 벡터 연산 유닛(벡터 컴퓨터)
CPU 제어 아키텍처와이어드 로직, 마이크로프로그램 (마이크로아키텍처), 실행 유닛, 제어 장치
CPU 고속화 아키텍처파이프라인, 수퍼스칼라, 아웃 오브 오더 실행, 분기 예측, 레지스터 윈도우, 레지스터 리네이밍, 투기적 실행
CPU 버스 아키텍처CPU 버스 (CPU 내부 버스, CPU 외부 버스《핀》 아키텍처), 버스 (컴퓨터) 항목 참조
멀티 프로세서 아키텍처대칭형 멀티프로세서(SMP), NUMA(ASMP), 크로스바 스위치
멀티 스레드 아키텍처블록형 멀티스레딩, 인터리브형 멀티스레딩, 동시 멀티스레딩


3. 3. 시스템 설계

시스템 설계는 컴퓨팅 시스템 내의 모든 하드웨어 구성 요소를 포함한다. 여기에는 CPU 이외의 데이터 처리, 예를 들어 직접 메모리 접근(DMA)이 있다. 또한, 가상화, 멀티프로세싱과 같은 기타 문제도 포함된다.[14]

시스템 아키텍처는 프로세서 외의 요소도 포함한 컴퓨터 전체의 아키텍처를 의미하며, 다음 내용들을 다룬다.[26]

  • 시스템 인터커넥트: 버스, 크로스바 스위치 등
  • 메모리 계층: 메모리 컨트롤러 및 메모리 계층
  • CPU 오프로드 기구: DMA
  • 멀티프로세싱 관련 부분
  • 여러 컴퓨터로 구성된 시스템: 컴퓨터 클러스터, NUMA 아키텍처 등


구체적인 시스템 아키텍처의 종류는 다음과 같다.

  • 제어 아키텍처: 인터럽트 제어, 입출력 제어
  • 버스 아키텍처: 하버드 아키텍처, 프로그램 내장 방식(폰 노이만 구조 포함), 크로스바 스위치, 시스템 버스, 메모리 버스, 입출력 버스 (버스 (컴퓨터) 항목 참조)
  • 메모리 아키텍처: 캐시 메모리, 가상 메모리, TLB (메모리 항목 참조)
  • 네트워크 아키텍처: 컴퓨터 네트워크 항목 참조
  • 운영 체제 아키텍처: 페이징 방식 아키텍처
  • 분산 처리 아키텍처

4. CPU 아키텍처

CPU 아키텍처는 컴퓨터의 중앙 처리 장치(CPU)가 데이터를 처리하고 명령을 실행하는 방식을 정의한다. 여기에는 크게 폰 노이만 아키텍처와 하버드 아키텍처, 그리고 데이터를 처리하는 방식에 따라 어큐뮬레이터 방식과 범용 레지스터 방식이 있다.

폰 노이만 아키텍처와 하버드 아키텍처는 메모리 사용 방식에 따른 분류이다. 폰 노이만 아키텍처는 명령어와 데이터를 같은 메모리에 저장하는 반면, 하버드 아키텍처는 명령어와 데이터를 각각 다른 메모리에 저장한다.

어큐뮬레이터 방식과 범용 레지스터 방식은 CPU 내 레지스터와 연산 장치(ALU)의 관계에 따라 분류된다. 어큐뮬레이터 방식은 연산 결과를 항상 특정 레지스터(어큐뮬레이터)에 저장하는 반면, 범용 레지스터 방식은 여러 레지스터를 자유롭게 사용하여 연산할 수 있다.

4. 1. 폰 노이만 아키텍처와 하버드 아키텍처

폰 노이만 아키텍처는 명령어와 데이터를 같은 메모리 공간에 저장하는 방식이다. 1944년 존 모클리와 존 프레스퍼 에커트가 EDVAC를 위해 처음 고안했으며, 이후 팀에 합류한 폰 노이만이 자신의 이름으로 보고서를 작성하면서 폰 노이만의 이름으로 불리게 되었다. 이 방식은 명령을 데이터로, 데이터를 명령으로 취급할 수 있어 유연성이 높다. 하지만 CPU의 처리 속도가 빨라질수록 CPU와 메모리 간 데이터 이동 빈도가 잦아지고, 명령과 데이터 간 "접근 경합"이 발생하여 작동이 느려지는 "폰 노이만 병목 현상"이 발생할 수 있다.

하버드 아키텍처


하버드 아키텍처는 명령어 메모리와 데이터 메모리를 분리하여 저장하는 방식이다. 1944년 IBM하버드 대학교에 납품한 Harvard Mark I에 처음 채택되었다. 이 방식은 메모리에서 명령과 데이터 접근 경합이 발생하지 않아 폰 노이만 병목 현상을 해소할 수 있다. 그러나 데이터를 명령으로 실행하거나, 동작 중에 명령을 다시 쓸 수 없는 등 유연성이 낮다.

수정 하버드 아키텍처(:en:Modified Harvard Architecture)는 하버드 아키텍처를 일부 수정한 형태로, 기본적으로 명령과 데이터를 분리하여 병목 현상을 해소하면서도, 명령용 메모리와 데이터용 메모리 간 데이터 이동이 가능하다. 이러한 특징 덕분에 마이크로컨트롤러에서 주로 사용되며, 현대에는 마이크로컨트롤러 외에도 많은 컴퓨터에서 채택하고 있다.

4. 2. 어큐뮬레이터 방식과 범용 레지스터 방식

CPU의 레지스터와 연산 장치(ALU)의 관계에 관한 아키텍처로는, '''어큐뮬레이터 방식'''과 '''범용 레지스터 방식'''이 있다. 1970년대와 1980년대의 CPU나 현재의 마이크로컨트롤러 일부는 어큐뮬레이터 방식을 채택했지만, 이는 소수이며, 현재의 개인용 컴퓨터스마트폰 등의 CPU는 기본적으로 범용 레지스터 방식을 채택하고 있으며, 이것이 현재 주류이다.

; 어큐뮬레이터 방식

연산 장치에서 연산한 결과를 반드시 「어큐뮬레이터 (accumulator, 축적 장치)」라고 불리는 특별한 위치의 레지스터에 저장하는 방식이다. 그리고 어큐뮬레이터의 값은 다음 연산에서 오퍼랜드(피연산자)로 사용된다.

1970년대나 80년대 등, CPU에 들어가는 트랜지스터의 수가 아직 상당히 제한되어 있던 시대에, CPU를 간소한 구조로 하여 트랜지스터 수를 줄이기 위해 고안된 방식이다.

CPU 내부에서는 수를 차례로 더하여 총합을 구하는 작업이 빈번하게 행해지고 있는데, 어큐뮬레이터 방식이면 오퍼랜드의 한쪽만 차례로 지정하고 연산기로 가산해 가는 것만으로 총합을 구할 수 있다. 예를 들어 Intel 8080의 「A 레지스터」는 어큐뮬레이터이다[31].

현재는 1970년대나 80년대처럼 CPU에 수용할 수 있는 트랜지스터 수가 제한되는 일은 없지만, 현재에도 마이크로컨트롤러의 일부에서는 굳이 어큐뮬레이터 방식을 채용하고, 더 나아가 (명령용 메모리와 데이터용 메모리를 별도로 두는) 하버드 아키텍처와 조합함으로써, 간소하고 비용을 억제하면서도 고성능의 마이크로컨트롤러를 제공하는 메이커도 있다[32]

; 범용 레지스터 방식

(위에서 설명한 어큐뮬레이터라는 특별한 취급의 레지스터는 두지 않고) 복수의 레지스터 중에서 2개의 레지스터를 지정하여, 그 2개의 값을 오퍼랜드로 하여 연산이 가능한 방식이다. 범용 레지스터 방식이면 오퍼랜드의 조합의 자유도가 높고, 고속 연산이 가능해진다. 또한, 마이크로컨트롤러의 프로그래밍 시에는 C 컴파일러의 IDE(통합 개발 환경)와의 친화성도 높고, 예를 들어 프로그램의 로컬 변수를 마이크로컨트롤러의 복수의 레지스터에 할당할 수 있다. (어큐뮬레이터 방식에서는 할당할 수 없고 RAM 등의 메모리에 할당해야 하는 것에 비해 유리.)[32] 현재 기술로는 CPU에 트랜지스터를 대량으로 채워 넣는 것도 용이하므로, 일반적으로는 이 범용 레지스터 방식을 채용한다.

5. 설계 목표

컴퓨터 구조 설계는 성능, 전력 효율, 비용, 신뢰성, 확장성 등 다양한 목표 사이의 균형을 맞추는 과정이다.


  • 성능: 컴퓨터 성능은 사이클당 명령어 수(IPC)와 클럭 속도의 조합으로 측정되지만, 기능 유닛 구성, 버스 속도, 메모리 용량 등도 영향을 미친다.
  • 전력 효율: 현대 컴퓨터에서 전력 효율은 매우 중요하며, MIPS/W(와트당 초당 백만 개의 명령어)가 일반적인 측정 단위이다. 최근 프로세서 설계는 트랜지스터 집적도를 높이는 것보다 전력 효율성에 더 중점을 두고 있다.[19] 임베디드 컴퓨터 분야에서는 전력 효율성이 처리량 및 대기 시간과 함께 중요한 목표이다.
  • 비용: 컴퓨터 설계 시 예상 판매량을 고려하여 제조 비용 목표값을 설정한다. 비용 절감은 다른 설계 목표와 상충될 수 있다.
  • 신뢰성 및 확장성: 컴퓨터 설계 시에는 신뢰성과 확장성도 고려해야 한다. 이러한 요소들은 다른 요소들과 상충 관계를 가질 수 있다.


컴퓨터 시스템의 정확한 형태는 제약 조건과 목표에 따라 달라진다. 고려해야 할 요소로는 표준, 전력컴퓨터 성능, 비용, 메모리 용량, 지연 시간, 처리량 등이 있다. 때로는 기능, 크기, 무게와 같은 요소도 고려된다.

일반적인 설계 방식은 심층적인 전력 분석을 수행하여 성능을 유지하면서 전력 소비를 낮추는 방법을 찾는 것이다. 현실의 컴퓨터 설계에는 기술적인 관점 외에도 프로젝트 매니저의 의향, 기업의 마케팅 전략 등도 영향을 미친다.

5. 1. 성능

컴퓨터 성능은 사이클당 명령어 수(IPC), 클럭 속도, 기능 유닛 조합, 버스 속도, 메모리 용량 등 다양한 요소에 의해 결정된다. IPC는 아키텍처 효율성을 나타내는 지표로, 높을수록 컴퓨터가 더 빠르다. 구형 컴퓨터는 IPC가 0.1 정도였지만, 현대 수퍼스칼라 프로세서는 3~5 IPC에 도달하기도 한다.

클럭 속도(주로 MHz 또는 GHz 단위)는 CPU의 메인 클럭이 초당 몇 사이클을 수행하는지를 나타내지만, 이것만으로 성능을 판단할 수는 없다. 따라서 제조업체들은 클럭 속도 외 다른 요소를 성능 지표로 활용한다.[20][21]

지연 시간은 프로세스 시작부터 완료까지 걸리는 시간이고, 처리량은 단위 시간당 수행되는 작업량이다. 인터럽트 지연 시간은 시스템이 특정 이벤트에 응답하는 데 걸리는 최대 시간이다.

벤치마킹은 여러 테스트 프로그램을 실행하여 성능을 측정하는 방법이지만, 결과가 서로 다를 수 있고 특정 벤치마크에만 최적화될 수 있으므로 맹신은 금물이다.[33][34]

컴퓨터 시스템은 용도에 따라 CPU 바운드(수치 계산 등), I/O 바운드(웹 서버 등), 메모리 바운드(비디오 편집 등)로 나뉜다. 프로세서뿐 아니라 시스템 전체 설계와 아키텍처가 성능에 영향을 미친다.

5. 2. 전력 효율

전력 효율성은 현대 컴퓨터에서 중요한 측정 지표이다. 더 높은 전력 효율성은 종종 더 낮은 속도나 더 높은 비용과 교환될 수 있다. 컴퓨터 아키텍처에서 전력 소비를 언급할 때의 일반적인 측정 단위는 MIPS/W(와트당 초당 백만 개의 명령어)이다.

최신 회로는 칩당 트랜지스터 수가 증가함에 따라 트랜지스터당 더 적은 전력이 필요하다.[18] 그러나 칩당 트랜지스터 수는 더 느린 속도로 증가하기 시작했다. 따라서 전력 효율성은 단일 칩에 점점 더 많은 트랜지스터를 집어넣는 것만큼 중요해졌다. 최근 프로세서 설계는 가능한 한 많은 트랜지스터를 단일 칩에 밀어 넣는 것보다 전력 효율성에 더 많은 중점을 두고 있다.[19] 임베디드 컴퓨터 분야에서 전력 효율성은 처리량 및 대기 시간과 함께 오랫동안 중요한 목표였다.

클럭 주파수 증가는 전력 감소 개선에 비해 지난 몇 년 동안 더 느리게 증가해 왔다. 이는 무어의 법칙의 종료와 더 긴 배터리 수명 및 모바일 기술의 크기 감소에 대한 수요에 의해 주도되었다. 인텔(Intel)이 Haswell 마이크로아키텍처 출시 시 보고한 최대 50%에 달하는 전력 소비 감소는, 더 높은 클럭 속도에서 전력 소비 및 소형화로의 초점 변화를 보여준다. 인텔은 전력 소비 벤치마크를 30W~40W에서 10W~20W로 줄였다.[20] 2002년~2006년 사이의 3 GHz에서 4 GHz로의 처리 속도 증가와 비교해 보면, 연구 개발의 초점이 클럭 주파수에서 벗어나 전력 소비를 줄이고 공간을 덜 차지하는 방향으로 이동하고 있음을 알 수 있다.[21]

전력 효율이 좋고, 소비 전력이 작은 것은 특히 컴퓨터가 휴대 가능하게 되면서 컴퓨터 설계에 있어서 중요성이 증가해 왔다. 또한 프로세서의 단위 면적당 트랜지스터 수가 증가함에 따라 전력 효율이 중요한 관점이 되었다. 이전에는 전력 소비량을 억제하면 성능이 저하되거나 비용이 증가하는 경우가 있었다. ARM 아키텍처는 처리 성능을 충분히 유지하면서 저전력을 실현하여 스마트폰이나 태블릿 등 모바일 컴퓨팅 용도(모바일 기기)에서 표준적인 존재가 되었다. 임베디드 시스템용 프로세서에서는 (임베디드 대상이 되는 기기에 따라 다르지만) 소비 전력이 작은 것이 중요하지만 성능은 적당하면 된다는 경우도 많기 때문에, 소비 전력 감소를 최우선으로 하여 처리 성능을 억제하는 설계를 하는 경우도 있다.

5. 3. 비용

컴퓨터 설계 전, 시스템 요구 사항 및 컴퓨터 시장 상황(타사 경쟁 제품의 존재 및 가격 등)을 고려하여 판매될 대수(로트)를 예상하고 이를 반영하여 제조 비용의 목표값을 설정한다. 비용 절감은 성능, 전력 효율, 기능 등 다른 설계 목표와 상충 관계에 놓일 수 있다.

5. 4. 신뢰성 및 확장성

컴퓨터를 설계할 때는 용도와 제약 조건을 고려하여 요소의 우선 순위를 결정한다. 컴퓨터 아키텍처는 일반적으로 표준 규격, 기능, 메모리 용량, 지연 시간, 처리율, 소비 전력, 생산 비용이나 생산성 등을 고려하여 결정되지만, 신뢰성, 확장성 등과 같은 요소도 고려된다. 이러한 요소들 중 일부는 서로 상충 관계에 있으며, 어떤 것을 우선시하면 다른 것이 희생된다.

6. 한국의 컴퓨터 산업과 컴퓨터 구조

대한민국은 메모리 반도체 분야에서 세계적인 경쟁력을 보유하고 있으나, 시스템 반도체 및 CPU 설계 분야에서는 상대적으로 취약하다. 정부는 시스템 반도체 산업 육성을 위해 연구개발(R&D) 투자를 확대하고 있으며, 특히 인공지능 반도체 개발에 집중하고 있다. 더불어민주당은 반도체 산업을 국가 핵심 전략 산업으로 육성하고, 차세대 반도체 기술 개발을 지원하는 정책을 추진하고 있다.

참조

[1] 웹사이트 Introduction to peer to peer computing http://www2.imm.dtu.[...] n.d.
[2] 서적 Principles of Computer Hardware
[3] 서적 Computer Architecture: A Quantitative Approach
[4] 간행물 Electronic Digital Computers 1948-09-25
[5] 문서 Konrad Zuses Bemuehungen um die Patentanmeldung der Z3 2000
[6] 서적 First Draft of a Report on the EDVAC
[7] 문서
[8] 웹사이트 A Description of Stretch https://archive.comp[...] 2017-10-07
[9] 서적 Planning a Computer System
[10] 웹사이트 System 360, From Computers to Computer Systems http://www-03.ibm.co[...] 2012-03-07
[11] 서적 Geschichten der Informatik: Visionen, Paradigmen, Leitmotive
[12] 문서
[13] 웹사이트 Organization of Computer Systems https://www.cise.ufl[...] 2017-05-11
[14] 서적 Computer Architecture: A Quantitative Approach Morgan Kaufmann Publishers
[15] 서적 Dictionary of Computer Science, Engineering, and Technology CRC Press
[16] 서적 The Essentials of Computer Organization and Architecture Jones & Bartlett Learning 2019
[17] 웹사이트 What is computer architecture? https://www.cis.upen[...] 2017-05-11
[18] 웹사이트 Integrated circuits and fabrication http://eacharya.infl[...] 2017-05-08
[19] 웹사이트 Exynos 9 Series (8895) http://www.samsung.c[...] 2017-05-08
[20] 웹사이트 Measuring Processor Power TDP vs ACP http://www.intel.com[...] 2017-05-05
[21] 웹사이트 History of Processor Performance https://www.cs.colum[...] 2017-05-05
[22] 웹사이트 https://online.sunde[...]
[23] 서적 コンピュータは私たちをどう進化させるのか: 必要な情報技術がわかる8つの授業 https://books.google[...] 株式会社ポプラ社 2016-12-08
[24] 서적 日本のイノベーションのジレンマ 第2版 破壊的イノベーターになるための7つのステップ https://books.google[...] 翔泳社 2020-08-25
[25] 서적 ITIL 4の教本 ベストプラクティスで学ぶサービスマネジメントの教科書 https://books.google[...] 翔泳社 2022-03-16
[26] 서적 Computer Architecture: A Quantitative Approach Morgan Kaufmann Publishers, Inc 2003
[27] 웹사이트 Arm, What is ISA? https://web.archive.[...]
[28] 서적 Dictionary of Computer Science, Engineering, and Technology CRC Press 2001
[29] 웹사이트 ZDNET https://japan.zdnet.[...]
[30] 웹사이트 ARM, Architecture and micro-architecture https://developer.ar[...]
[31] 웹사이트 小松「Intel 8080」 http://www.st.rim.or[...]
[32] 웹사이트 菅井賢、STマイクロエレクトロニクス「マイコンのアーキテクチャって何?」 https://edn.itmedia.[...]
[33] 웹사이트 理化学研究所、ソフトウェア技術チーム「スーパーコンピュータとアプリケーションの性能 https://aics.riken.j[...]
[34] 웹사이트 https://www.mext.go.[...]
[35] 문서
[36] 문서 machine organization
[37] 문서 system architecture
[38] 문서 Planning a Computer System: Project Stretch
[39] 간행물 Architecture of the IBM System/360 https://doi.org/10.1[...] 1964-04
[40] 서적 Computer Architecture: A Quantitative Approach
[41] 간행물 Electronic Digital Computers https://web.archive.[...] 2009-04-10
[42] 문서 Konrad Zuses Bemuehungen um die Patentanmeldung der Z3
[43] 서적 First Draft of a Report on the EDVAC https://archive.org/[...]
[44] 문서 Reproduced in B. J. Copeland (Ed.), "Alan Turing's Automatic Computing Engine", OUP, 2005, pp. 369-454.
[45] 웹인용 A Description of Stretch https://archive.comp[...] 2017-10-07
[46] 서적 Planning a Computer System https://archive.org/[...]
[47] 간행물 Computer components https://web.archive.[...] 2009-04-10



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com